Vehicle automation has become an inevitable phenomenon and increasingly close to a worldwide reality. Defined and divided into six different levels by the Society of Automotive Engineers (SAE), ranging from “no automation” to “full automation”, driving automation and its applications are already available and are expected to have a significant presence in the future. Aiming to be a contribution to the development of this industry, the goal of the Autonomous Golf Cart Project is to modify a standard golf cart to implement a fully autonomous driving system
To simplify the modeling process and make it more efficient, the vehicle is divided into subsystems. Each subsystem is modeled individually and the respective models are subsequently combined to form the full cart model. Considering the golf cart specifications and the early stage of the project, the main subsystems implemented were “Vehicle Body”, “Braking” and “Motor/Motor Controller”. The goal of this primary approach is to build a model for a vehicle that accelerates and brakes successfully, following values provided through the ROS network and returning information (such as instantaneous velocity and acceleration) as feedback. Once this basic model for the cart is accomplished, subsystems for “Steering”, “Sensor Data Processing” and “Output Processing” will possibly be added.
Using block diagrams, Simulink allows modeling, simulating and analyzing systems. Within Simulink’s environment, Simscape is an added feature that enables the modeling of physical systems by using blocks that represent physical components with physical connections. Two options were considered when deciding how to approach vehicle modeling on MatLab: taking a strictly equation based approach using basic Simulink blocks or taking a physical modeling approach by integrating Simscape and Simulink. Since using Simscape was significantly more intuitive and allowed a more accurate representation of the actual golf cart systems, the second approach was chosen.
Performed by a majority of the population on a daily basis, driving seems a reasonably simple task and the series of actions involved can be mindlessly disregarded. However, the complexity of this process becomes clear when trying to implement driving automation and the existence of a network that allows free and organized flow of relevant data through every part of the system unveils as an absolute necessity. Among several operating systems, ROS (Robot Operating System) particularly excels in fulfilling this need and is frequently used in driving automation projects. ROS provides several services and is a “distributed framework” that enables not only the design of executables, inside nodes that can be grouped and divided into stacks and packages, but also their communication. In ”Autonomous Golf Cart Navigation Using ROS” [1] the operating system’s unique way of providing a nodal-based system, in which programmers can benefit from a high level of modularity, is described as a keen advantage. It allows parts to be developed and tested independently, making the process more efficient and less time consuming.
Two of the most imperative factors in allowing the completely autonomous operation of a vehicle are effective localization and navigation, in other words, the vehicle being capable of calculating and recognizing its position within the surrounding environment and capable of choosing and following a path, determining its subsequent steps based on predetermined and/or generated maps, its current localization and acquired sensor data. To provide the vehicle with the necessary information, commonly used equipment includes LIDAR, stereo camera, GPS unit, wheel encoders, and inertial measurement units (IMUs). Data provided by GPS units is reported as insufficiently accurate, therefore creating a need for additional sensors, localization approaches or even navigation systems . In “Golf cart Prototype Development and Navigation Simulation Using ROS and Gazebo” [2], a RT3002 navigation system connected to the NI CompactRIO is used, publishing position and velocity values to the higher level controller application with an accuracy of two centimeters, for example.
A feature present in a great majority of designs analyzed is a safety system, specially dedicated to manage emergency situations, usually allowing the driver (or passengers) to override the autonomous mode. An approach described involves the use of an electromagnetic clutch to enable and disable autonomous steering (not powered while in manual mode and cutting power to the steering servo) and kill switches along with impact sensors, with the purpose of cutting power to the engine and forcing a stop if pressed. Another safety strategy is to determine maximum velocities according to the vehicle’s distance from surrounding objects and reverting the polarity of the motor, causing the vehicle to immediately slow down if an obstacle is identified within a close range [2]. Additional strategies include the use of sounds and visuals to alert the driver, and potentially passengers, of an emergency or malfunction.
The group restored an old golf cart into a renewable-based golf cart with solar panels, to be used as a model for the project